#ifndef __MPU6050_H__
#define __MPU6050_H__

#define MPU6050_SMPLRT_DIV		0x19 //输出分频
#define MPU6050_CONFIG				0x1a
#define MPU6050_GYRO_CONFIG		0x1b //陀螺仪配置
#define MPU6050_ACCEL_CONFIG	0x1c //加速度计配置

#define MPU6050_ACCEL_XOUT_H	0x3b
#define MPU6050_ACCEL_XOUT_L	0x3c
#define MPU6050_ACCEL_YOUT_H	0x3d
#define MPU6050_ACCEL_YOUT_L	0x3e
#define MPU6050_ACCEL_ZOUT_H	0x3f
#define MPU6050_ACCEL_ZOUT_L	0x40
#define MPU6050_TEMP_OUT_H		0x41
#define MPU6050_TEMP_OUT_L		0x42
#define MPU6050_GYRO_XOUT_H		0x43
#define MPU6050_GYRO_XOUT_L		0x44
#define MPU6050_GYRO_YOUT_H		0x45
#define MPU6050_GYRO_YOUT_L		0x46
#define MPU6050_GYRO_ZOUT_H		0x47
#define MPU6050_GYRO_ZOUT_L		0x48

#define MPU6050_PWR_MGMT_1		0x6b
#define MPU6050_PWR_MGMT_2		0x6c
#define MPU6050_WHO_AM_I			0x75

typedef struct {
	int16_t AccX,AccY,AccZ,GyroX,GyroY,GyroZ;
} MPU6050_Data;

void MPU6050_Init(void);
void MPU6050_WriteRegister(u8 RegAddr,u8 Data);
u8 MPU6050_ReadRegister(u8 RegAddr);
void MPU6050_Soft_WriteRegister(u8 RegAddr,u8 Data);
u8 MPU6050_Soft_ReadRegister(u8 RegAddr);
MPU6050_Data MPU6050_GetData(void);
#endif
